// #include<iostream>
// #include<string>
// using namespace std;
// void T(string &bin,string &cut,int length,int l,int r){
//   int half=length/2;
//   bool flag=true;
//   for(int i=l+1;i<=r;i++){
//     if(bin[i]!=bin[i-1]){
//       cut+='C';
//       T(bin,cut,half,l,l+half-1);
//       T(bin,cut,half,l+half,r);
//       flag=false;
//       break;
//     }
//   }
//   if(flag) cut+=bin[l]=='0'?'A':'B';   

// }
// int main(){
//   string bin,cut;
//   cin>>bin;
//   int length=bin.length();
//   T(bin,cut,length,0,length-1);
//   cout<<cut;
// }
#include<iostream>
#include<string>
using namespace std;
string encode(string s){
  if(s.find('0')==string::npos) return "B";
  if(s.find('1')==string::npos) return "A";
  int half=s.length()/2;
  return "C"+encode(s.substr(0,half))+encode(s.substr(half));

}
int main(){
  string bin;
  cin>>bin;
  cout<<encode(bin)<<endl;
}